package src.algorithm;

public class BollHeight {
    /**
     *题目：一球从100米高度自由落下，每次落地后反跳回原高度的一半；再落下，求它在第10次落地时，共经过多少米？第10次反弹多高？
     *1.程序分析:递归实现
     */
        public static double sumBallHeight(double h, int n){
            if(n == 1) return h/2;
            else return sumBallHeight(h/2, n-1);
        }
    public static double countBallHeight(double h, int n)
    {
        double sum = 0.0;
        for(int i = 1;i<=n;i++)
        {
            sum += h + h/2;
            h = h/2;
        }
        return sum;
    }

        public static void main(String[] args)
        {
            System.out.println("共经过："+countBallHeight(100, 10)+"米");
            System.out.println("第十次弹起："+sumBallHeight(100, 10)+"米");
        }
}
